====================本系列文章沒有什麼高深的理論====================
====================純粹是以一個菜雞的視角來分享====================
在兩個等號(==)
的比較運算式下,若是雙方的資料類型不同時,則會進行「自動轉型」,那麼今天就來說說自動轉型的規則。
布林值
的情況下,會將true
轉為「數字」的1
,如果是false
則會變成「數字」的0
。
Number()
嘗試轉型為數字後,才進行比較。
valueOf()
取得對應的基本型別的值,才進行比較。
NaN
不等於NaN
,這個在兩個等號或是三個等號的結果都是相同的。
true
。
false == 0 // true
true == 0 // true
[] == [] // false
[] == ![] // true
三個等號(===)
與兩個等號(==)
,雖然都是比較的意思,但很多人以為只有三個等號(===)
會檢查型別,而兩個等號(==)
不會檢查型別,但其實並不是這樣,而是三個等號(===)
「不會」對數值做自動轉型,兩個等號(==)
「會」做自動轉型。
今日的分享就到這囉,我們明天見,掰掰!